package sistema_arquivos;

import java.util.ArrayList;
import java.util.Scanner;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author modesto
 * 
 *
 */
public class Main {
    
    public static void main(String[] args) {
        int fd;
        Erro erro;
        Arquivo arq;
        String comando;
        String[] parametros;
        Scanner leitor = new Scanner(System.in);
        Diretorio raiz = new Diretorio("/", true, true, 0);
        SistemaArquivos sa = new SistemaArquivos(new Disco(4, 250), raiz);
        ArrayList<String> filhos;
        
        do
        {
            System.out.print("> ");
                        
            comando = null;
            
            comando = leitor.nextLine();
            
            parametros = comando.split("( {1,}|\t)");

            if (parametros.length > 0)
            {                
                switch (parametros[0])
                {
                    case "ls":
                        if (parametros.length == 2)
                            sa.shell_ls(parametros[1]);
                        else
                            sa.shell_ls("");
                        break;
                    case "cd":
                        if (parametros.length == 2)
                            sa.shell_cd(parametros[1]);
                        else
                            System.out.println("cd: Faltam parametros.");
                        break;
                    case "mkdir":
                        if (parametros.length == 2)
                            sa.shell_mkdir(parametros[1]);
                        else
                            System.out.println("mkdir: Faltam parametros.");
                        break;
                    case "mdir":
                        if (parametros.length == 2)
                            sa.shell_mdir(parametros[1]);
                        else
                            System.out.println("mdir: Faltam parametros");
                        break;
                    case "pwd":
                        sa.shell_pwd();
                        break;
                    case "rm":
                        if (parametros.length == 2)
                            sa.shell_rm(parametros[1]);
                        else
                            System.out.println("rm: Faltam parametros.");
                        break;
                    case "df":
                        sa.shell_df();
                        break;
                    case "lsof":
                        sa.shell_lsof();
                        break;                       
                    case "close":
                        if (parametros.length == 2)
                            sa.shell_close(Integer.parseInt(parametros[1]));
                        else
                            System.out.println("close: Faltam parametros.");
                        break;
                    case "stat":
                        if (parametros.length == 2)
                            sa.shell_stat(parametros[1]);
                        else
                            System.out.println("stat: Faltam parametros");
                        break;
                    case "mv":
                        if (parametros.length == 3)
                            sa.shell_mv(parametros[1], parametros[2]);
                        else
                            System.out.println("mv: Faltam parametros.");
                        break;
                    default:
                        System.out.println(parametros[0] + ": comando nao reconhecido");
                }
            }

            
        } while (!comando.equalsIgnoreCase("exit"));
        
        
    }
    
}
